<?php

//include "application/classes/model/Candidato.php";
include "application/classes/util/DateUtil.php";

class FormularioDeCandidato extends Model{

	/*******************
	 * ATRIBUTOS
	 *******************/
	private $nome;
	private $eMail;
	private $eMailSecundario;
	private $dataDeNascimento;
	private $sexo;
	private $estadoCivil;
	private $telefoneResidencial;
	private $telefoneCelular;
	private $telefoneAdicional;
	private $rg;
	private $cpf;
	private $camposPreenchidos;
	private $candidato;

	/*******************
	 * CONSTRUTOR
	 *******************/

	public function FormularioDeCandidato($candidato = null){
		$this->nome = "";
		$this->eMail = "";
		$this->eMailSecundario = "";
		//$this->idade = "";
		$this->dataDeNascimento = "";
		$this->sexo = "";
		$this->estadoCivil = "";
		$this->telefoneResidencial = "";
		$this->telefoneCelular = "";
		$this->telefoneAdicional = "";
		$this->camposPreenchidos = array();

		if($candidato != null){
			$this->carregarDadosDoFormulario($candidato);
		}
	}

	/*******************
	 * METODOS
	 *******************/

	public function definirCampoPreenchido($nomeDoCampo, $valorDoCampo){
		$this->camposPreenchidos[$nomeDoCampo] = $valorDoCampo;
	}

	public function obterCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return $this->camposPreenchidos[$nomeDoCampo];
		}
		else{
			return "";
		}
	}

	public function isCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return true;
		}
		else{
			return false;
		}
	}
	
	//Repreencher o formulario em caso de carregamento do formulario, seja pela session ou pelo Banco de Dados
	private function carregarDadosDoFormulario($candidato){
		$this->candidato = $candidato;

		$nome = $this->candidato->getNome();
		$eMail = $this->candidato->getEMail();
		$eMailSecundario = $this->candidato->getEMail();
		$dataDeNascimento = $this->candidato->getDataDeNascimento();
		$dia = DateUtil::obterDiaDeData($dataDeNascimento);
		$mes = DateUtil::obterMesDeData($dataDeNascimento);
		$ano = DateUtil::obterAnoDeData($dataDeNascimento);
		$sexo = $this->candidato->getSexo();
		$estadoCivil = $this->candidato->getEstadoCivil();
		$telefoneResidencial = $this->candidato->getTelefoneResidencial();
		$telefoneCelular = $this->candidato->getTelefoneCelular();
		$telefoneAdicional = $this->candidato->getOutrosTelefones();
		$rg = $this->candidato->getRg();
		$cpf = $this->candidato->getCpf();

		if($nome != null || $nome != ""){
			$this->definirCampoPreenchido("Nome", $nome);
		}

		if($eMail != null || $eMail != "" ){
			$this->definirCampoPreenchido("Email", $eMail);
			$this->definirCampoPreenchido("Email2", $eMailSecundario);
		}

		if($dataDeNascimento != null || $dataDeNascimento != ""){
			$this->definirCampoPreenchido("DataDeNascimento", $dataDeNascimento);
		}
		
		if($dia != null || $dia != ""){
			$this->definirCampoPreenchido("dataNascimentoDia", $dia);
		}

		if($mes != null || $mes != ""){
			$this->definirCampoPreenchido("dataNascimentoMes", $mes);
		}

		if($ano != null || $ano != ""){
			$this->definirCampoPreenchido("dataNascimentoAno", $ano);
		}

		if($sexo != null || $sexo != ""){
			$this->definirCampoPreenchido("Sexo", $sexo);
		}

		if($estadoCivil != null || $estadoCivil != ""){
			$this->definirCampoPreenchido("EstadoCivil", $estadoCivil);
		}

		if($telefoneResidencial != null || $telefoneResidencial != ""){
			$this->definirCampoPreenchido("TelefoneResidencial", $telefoneResidencial);
		}

		if($telefoneCelular != null || $telefoneCelular != ""){
			$this->definirCampoPreenchido("TelefoneCelular", $telefoneCelular);
		}

		if($telefoneAdicional != null || $telefoneAdicional != ""){
			$this->definirCampoPreenchido("OutrosTelefones", $telefoneAdicional);
		}

		if($rg != null || $rg != ""){
			$this->definirCampoPreenchido("RG", $rg);
		}

		if($cpf != null || $cpf != ""){
			$this->definirCampoPreenchido("CPF", $cpf);
		}

	}

	//Tentativa de definir os campos já preenchidos pelo usuário em caso de erro ou qualquer outra necessidade
	public function recarregarDadosDoFormulario(){
		$nome = $_POST['Nome'];
		$eMail = $_POST['Email'];
		$eMailSecundario = $_POST['Email2'];
		$dia = $_POST['dataNascimentoDia'];
		$mes = $_POST['dataNascimentoMes'];
		$ano = $_POST['dataNascimentoAno'];
		$sexo = "";
		if(isset($_POST['Sexo'])){
			$sexo = $_POST['Sexo'];
		}
		$estadoCivil = $_POST['EstadoCivil'];
		$telefoneResidencial = $_POST['TelefoneResidencial'];
		$telefoneCelular = $_POST['TelefoneCelular'];
		$telefoneAdicional = $_POST['OutrosTelefones'];
		$rg = $_POST['RG'];
		$cpf = $_POST['CPF'];

		if($nome != null || $nome != ""){
			$this->definirCampoPreenchido("Nome", $nome);
		}

		if($eMail != null || $eMail != "" ){
			$this->definirCampoPreenchido("Email", $eMail);
			$this->definirCampoPreenchido("Email2", $eMailSecundario);
		}

		if($dia != null || $dia != ""){
			$this->definirCampoPreenchido("dataNascimentoDia", $dia);
		}

		if($mes != null || $mes != ""){
			$this->definirCampoPreenchido("dataNascimentoMes", $mes);
		}

		if($ano != null || $ano != ""){
			$this->definirCampoPreenchido("dataNascimentoAno", $ano);
		}

		if($sexo != null || $sexo != ""){
			$this->definirCampoPreenchido("Sexo", $sexo);
		}

		if($estadoCivil != null || $estadoCivil != ""){
			$this->definirCampoPreenchido("EstadoCivil", $estadoCivil);
		}

		if($telefoneResidencial != null || $telefoneResidencial != ""){
			$this->definirCampoPreenchido("TelefoneResidencial", $telefoneResidencial);
		}

		if($telefoneCelular != null || $telefoneCelular != ""){
			$this->definirCampoPreenchido("TelefoneCelular", $telefoneCelular);
		}

		if($telefoneAdicional != null || $telefoneAdicional != ""){
			$this->definirCampoPreenchido("OutrosTelefones", $telefoneAdicional);
		}

		if($rg != null || $rg != ""){
			$this->definirCampoPreenchido("RG", $rg);
		}

		if($cpf != null || $cpf != ""){
			$this->definirCampoPreenchido("CPF", $cpf);
		}

	}

	/*******************
	 * GETTERS/SETTERS
	 *******************/
}


?>